perm filename DOC.RLL[RDG,DBL]2 blob sn#540822 filedate 1980-10-14 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	Auxillary functions - Really in CORLL
C00007 ENDMK
CāŠ—;
Auxillary functions - Really in CORLL
RETRIEVE[ names kb noclose? ]
	This function is designed to (non-destructively) retreive
one or more units from a knowledge base. Note this kb may be one of the
knowledge bases currently open - in which case, the values returned  will
be the property/value pairs of U before this session started.

names	- Should be the list of unit names desired. [A single atom
	is acceptable as well.]
kb	- This should be the KB on which each member of names is stored.
	[If it is not of the form xxx.KB, the ".KB" will be tacked on.]
	If omitted, will use the KB associated with the first member
	of names if that unit is in a currently open KB, or will ask
	user for KB name.
noclose?- If NIL, will close the KB when done.

The value returned be a list whose members are of the form 
	(unit-name . (p1 v1 p2 v2 ... pN vN))
where unit-name is the name unit, and the pi's and vi's are the properties
and their corresponding values, respectively.
NOTE: if unable to find unit-name, the CDR of this list will be the atom
	"*** Trouble -- unable to find ***"
(Various other error conditions may be encountered - eg if the file could
not be found, or opened; or if it was not in a format CORLL would find 
acceptable (ie first position holding the pointer to the unit index.)

ReportAll[ filename ]
	This should be used to report all the modifications made to any
unit during this session. These are written onto the file filename.
(If ReportAll is called with no arguments, the user will be asked to 
supply the file name. Returning NIL, ) or ] will cause UP.REPORT to
be used. In any case, the file used will be the value of
the global variable UP.REPORTINGFILE.)
This is done by advising all the functions stored on the global UA.WRITINGFNS.
Notice this will significantly slow down the system.

Diagnose[ kb ]
	This function will check the knowledge base kb for syntactic
consistency. After putting all units, it reads through each unit, to confirm
that its entry is a list with an even number of values, and that every location
in the file is assigned to exactly one unit, or the free block list.
Warning messages are reported whenever a hole in encountered.
If more than one "thing" claims some space, an error message is printed,
and the name of the first unit involved is stored on the list this function
returns. [Note that this function returned NIL if no errors are encountered.]
Finally, this function will print a "." every 50 units it scans.